<?php 
namespace Admin\Controller;

use Think\Controller;

class RoleController extends AdminController
{
	// 角色列表详情
	public function index()
	{
		$data=D('role')->order('id desc')->select();
        $this->assign('title','角色表');
        $this->assign('list',$data);
		$this->display('Role/index');
	}
    //删除
	public function del()
	{
		if (empty($_GET['id'])) {
            $this->redirect('Role/index');
            exit; 
		}
		$id = I('get.id/d');
		if (D('role')->delete($id) > 0 && D('userrole')->where(array('rid'=>$id))->delete() > 0 && D('rolenode')->where(array('rid'=>array('eq',$id)))->delete() >0 ) {
			$this->success('删除成功！',U('Role/index'));
		}else{
			$this->error('删除失败');
		}

	}

    //添加页
	public function add()
	{
		$this->assign('title','添加角色');
		$this->display('Role/add');
	}
	// 执行添加操作
	public function doadd()
	{
		$role=D('role');
		// var_dump($role);exit;
		if (!$role->create()) {
			$this->error($role->getError());
		} else {
			if ($role->add() > 0) {
				$this->success('添加成功',U('index'));
			} else {
				
				$this->error('添加失败');
			}
		}
                 
	}

	//编辑页
	public function edit($id)
	{
		$id = I('get.id/d');

		$data = D('role')->find($id);

		$this->assign('title','编辑用户');
		$this->assign('data',$data);
		$this->display('Role/edit');
	}
	// 执行编辑操作
	public function update()
	{
		if (empty($_POST)) {
			$this->error('请填写相应数据!',U('Role/edit'));
			exit;
		}
		if (!D('role')->create()) {
			$this->error(D('role')->getError());
		}

		// echo D('role')->getLastSql().'<br>';exit;
		if (D('role')->save()) {
			$this->success('修改成功',U('index'));
		} else {
			$this->error('修改失败');
		}
	}

	// 浏览权限信息
	public function nodelist()
	{	
		// 查询角色表
		$rid = I('get.id');
		$list = D('role')->find($rid);
		// dump($list);
		// 查询所有节点(权限)
		$nodes = D('node')->select();
		// dump($nodes);
		// 查询本角色的权限
		$rolenode = D('rolenode')->where(array('rid'=>$rid))->select();
		// dump($rolenode);
		$mynode = array();
		// 得到相应的权限id
		foreach ($rolenode as $val) {
			$mynode[] = $val['nid'];
		}
		// dump($mynode);
		// exit;
		// 向模板分配角色
		$this->assign('role',$list);
		// 向前台模板分配节点信息（所有权限信息）
		$this->assign('nodes',$nodes);

		// 向前台分配权限信息（该角色已拥有的权限）
		$this->assign('mynode',$mynode);


		//加载模板
		$this->display('Role/nodelist');
	}



	// 保存权限信息
	public function savenode(){
		if(empty($_POST['node'])){
			$this->error("必须选择一个节点！");
		}

		$rid = I('post.rid');

		//删除该 角色的 所有信息--避免重复添加
		D('rolenode')->where(array('rid'=>array('eq',$rid)))->delete();

		//循环添加
		foreach($_POST['node'] as $v){
			$data['nid'] = $v;
			$data['rid'] = $rid;
			//执行添加
			D('rolenode')->data($data)->add();
		}

		$this->success("添加成功！",U('Role/index'));
	}



}